package com.fly.mapper;

import com.fly.bean.UserLog;
import com.fly.bean.Users;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {

    /**
     * 查询得到所有的用户信息
     * @param userName
     * @param userPwd
     * @return
     */
    Users getUserByUserNameAndUserPwd(@Param("userName") String userName, @Param("userPwd") String userPwd);

    /**
     * 根据用户Id获取用户信息
     * @param userId
     * @return
     */
    Users getUserById(Integer userId);

    /**
     * 根据用户ID修改用户信息
     * @param user
     */
    void modifyUserById(Users user);

    /**
     * 添加用户日志信息
     * @param userLog
     * @return
     */
    Integer addUserLog(UserLog userLog);

    /**
     * 查询原密码是否正确
     * @param userId
     * @param userPwd
     * @return
     */
    Integer selectSrcUserPwdByUserId(@Param("userId") Integer userId,@Param("userPwd") String userPwd);

    /**
     * 修改密码
     * @param user
     * @return
     */
    Integer modifyPassword(Users user);

    /**
     * 根据用户名查询用户Id
     * @param userName
     * @return
     */
    Integer selectUserIdByUserName(String userName);

    /**
     * 根据用户Id查询角色Id
     * @param userId
     * @return
     */
    Integer selectRoleIdByUserId(Integer userId);

    /**
     * 根据用户Id查询userState
     * @param userId
     * @return
     */
    Integer selectUserStateByUserId(Integer userId);

    /**
     * 根据角色Id查询roleState
     * @param roleId
     * @return
     */
    Integer selectRoleStateByRoleId(Integer roleId);

    /**
     * 根据userState查询sysProValueName
     * @param userState
     * @return
     */
    String selectSysProValueNameByUserState(Integer userState);

    /**
     * 根据roleState查询sysProValueName
     * @param roleState
     * @return
     */
    String selectSysProValueNameByRoleState(Integer roleState);

    /**
     * 查询得到所有的密码进行加密
     * @return
     */
    List<Users> selectAllPassword();
}
